import { createStore } from 'vuex'
/**
 * vue2中的写法
 * import Vue from 'vue'
 * import Vuex from 'vuex'
 * Vue.use(Vuex)
 * 
 * */
export default createStore({
    state: {
        tasks: [] // 接收用户添加的任务
    },
    getters: { // 相当于vue的计算属性
        // 计算正在进行的任务数量
        workCount(state) {
            let num = 0
            state.tasks.forEach(item => {
                if (!item.check) {
                    num++
                }
            })
            return num
        }
    },
    mutations: { // 修改state数据的唯一方法就是提交mutation
        addTask(state, val) {
            // console.log(val);
            let obj = {
                task: val,
                id: new Date().getTime(), // 这里使用时间戳作为数据id保证数据的唯一性
                check: false, // 表示数据是否被勾选中
                isExit: false // 标记任务是否处于编辑状态
            }
            state.tasks.push(obj)

            // console.log(state.tasks);
        },

        // 从vuex中删除数据的方法
        delTask(state, i) {
            state.tasks.splice(i, 1)
        },

        // 清空任务的方法
        clearTask(state, type) {
            state.tasks = state.tasks.filter(item => {
                return item.check != type
            })
        }
    },
    actions: {},
    modules: {}
})